package com.trela.paymeontime.web.model.dao;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.joda.time.DateTime;

import com.trela.paymeontime.web.model.Asset;
import com.trela.paymeontime.web.model.Occurence;
import com.trela.paymeontime.web.model.Payment;
import com.trela.paymeontime.web.model.PaymentType;
import com.trela.paymeontime.web.model.Priority;

public class MockDAO {
    public Collection<Payment> getPayments() {
        ArrayList<Payment> payments = new ArrayList<>();
        
        payments.add(new Payment("Tomasz Trela Software Faktura VAT", BigDecimal.valueOf(13000.00), 
                new DateTime(2014, 1, 20, 0, 0), PaymentType.INCOME, Occurence.MONTHLY, Priority.MEDIUM));
        payments.add(new Payment("Tomasz Trela Software VAT", BigDecimal.valueOf(7500.00), 
                new DateTime(2014, 1, 20, 0, 0), PaymentType.OUTCOME, Occurence.QUARTERLY, Priority.MEDIUM));
        payments.add(new Payment("Tomasz Trela Software PIT", BigDecimal.valueOf(5000.00), 
                new DateTime(2014, 1, 20, 0, 0), PaymentType.OUTCOME, Occurence.QUARTERLY, Priority.MEDIUM));
        payments.add(new Payment("Tomasz Trela Software ZUS", BigDecimal.valueOf(1000.00), 
                new DateTime(2014, 2, 10, 0, 0), PaymentType.OUTCOME, Occurence.MONTHLY, Priority.MEDIUM));
        
        payments.add(new Payment("Anna Trela Wypłata Sąd Krowodrza", BigDecimal.valueOf(2300.00), new DateTime(2014,
                1, 27, 0, 0), PaymentType.INCOME, Occurence.MONTHLY, Priority.MEDIUM));
        
        payments.add(new Payment("Bank Pocztowy Kredyt", BigDecimal.valueOf(1600.00), new DateTime(2014, 1, 20, 0, 0),
                PaymentType.OUTCOME, Occurence.MONTHLY, Priority.IMPORTANT));
        payments.add(new Payment("PKO Kredyt Studencki", BigDecimal.valueOf(350.00), new DateTime(2014, 1, 10, 0, 0),
                PaymentType.OUTCOME, Occurence.MONTHLY, Priority.MEDIUM));

        payments.add(new Payment("Niania", BigDecimal.valueOf(400.00), new DateTime(2014, 1, 10, 0, 0),
                PaymentType.OUTCOME, Occurence.WEEKLY, Priority.MEDIUM));
        
        payments.add(new Payment("ROM Mieszkanie", BigDecimal.valueOf(600.00), new DateTime(2014, 1, 10, 0, 0),
                PaymentType.OUTCOME, Occurence.MONTHLY, Priority.MEDIUM));
        
        payments.add(new Payment("Play telefon", BigDecimal.valueOf(75.00), new DateTime(2014, 1, 20, 0, 0),
                PaymentType.OUTCOME, Occurence.MONTHLY, Priority.MEDIUM));
        payments.add(new Payment("Tauron", BigDecimal.valueOf(150.00), new DateTime(2014, 1, 20, 0, 0),
                PaymentType.OUTCOME, Occurence.MONTHLY, Priority.MEDIUM));
        payments.add(new Payment("UPC", BigDecimal.valueOf(66.00), new DateTime(2014, 1, 20, 0, 0),
                PaymentType.OUTCOME, Occurence.MONTHLY, Priority.MEDIUM));

        return payments;
    }

    public List<Asset> getAssets() {
        List<Asset> assets = new ArrayList<>();
        assets.add(new Asset(BigDecimal.valueOf(400.0), "Gotówka", 0, BigDecimal.ZERO, Asset.AssetType.CASH, null));
        assets.add(new Asset(BigDecimal.valueOf(400.0), "ING Firma", 0, BigDecimal.ZERO, Asset.AssetType.BANK_ACCOUNT, null));
        assets.add(new Asset(BigDecimal.valueOf(0), "ING PRV", 0, BigDecimal.ZERO, Asset.AssetType.BANK_ACCOUNT, null));
        assets.add(new Asset(BigDecimal.valueOf(0), "MBANK", 0, BigDecimal.ZERO, Asset.AssetType.BANK_ACCOUNT,null));
        assets.add(new Asset(BigDecimal.valueOf(0), "Pocztowy", 0, BigDecimal.ZERO, Asset.AssetType.BANK_ACCOUNT,null));
        assets.add(new Asset(BigDecimal.valueOf(1600), "Anna Trela Pocztowy", 18, BigDecimal.valueOf(2000.0), Asset.AssetType.CREDIT_CARD, new DateTime(2014, 2, 8, 0, 0)));
        assets.add(new Asset(BigDecimal.valueOf(1400), "Tomasz Trela ING", 17, BigDecimal.valueOf(1800.0), Asset.AssetType.CREDIT_CARD, new DateTime(2014, 2, 15, 0, 0)));
        return assets ;
    }
}
